﻿using System.Runtime.InteropServices;

namespace Hanoi
{
    internal class Program
    {       
        static void Main(string[] args)
        {
            //提示用户输入一个整数
            Console.WriteLine("请输层数：");
            int layers = Convert.ToInt32(Console.ReadLine());
            //清屏
            Console.Clear();
            //调用函数
            Hanoi(layers, 'a', 'b', 'c');
        }
         public static void Hanoi(int n, char a, char b, char c)
        {
            //只有一层的时候，从a转移到c
            if(n == 1)
            {                
                Console.WriteLine($"将第{n}层从塔{a}转移到{c}层");
            }
            else
            {
                //递归调用将n-1层从a转移到b
                Hanoi(n - 1, a, c, b);
                //输出第n层从a转移到c               
                Console.WriteLine($"将第{n}层从塔{a}转移到{c}层");
                //再把第n-1层从b转移到c
                Hanoi(n - 1, b, a, c);
            }
        }

    }
}